import random, re

# （1）将字符串转换为保留2位小数的数字类型
num = float('{0:.3}'.format(3.14159))
print("(1) = ", num)

# （2） 实现从 1，3，5，7，9 抽取随机数
print("(2) = ", random.choice([1, 3, 5, 7, 9]))

# （3） 将以下数字转换为987654321
num1 = 123456789
str1 = str(num1)
print("(3) = ", str1[::-1])
print("(3) =", ''.join(reversed(str1)))

# （4） 分别提取其中的能被整除的数字，字母
s1 = "aka3223liioop1998*7=&2@@!"
num1, str1, other = "", "", ""

for s in s1:
    if s.isnumeric():
        num1 = num1 + s
    elif re.search(r"[a-zA-Z]", s) != None:
        str1 = str1 + s
    else:
        other = other + s
print(f'(4)  数字={num1} 字母={str1} 特殊字符={other}')

# （5）提取身份证的出生年月日
s1 = "42110919800901876X"
print(f'(5) 年份={s1[6:10]}年{s1[10:12]}月{s1[12:14]}日')

# （6）将整数转为小数，并保留2位小数
a = 2
str1 = str(a)
print(f'(6) {(str1 + ".").ljust(4, "0")}')

# （7）提取URL的请求参数
s1 = "http://www.baidu.com/all/search?userId=23&age=29&name=tom"
dict1 = {}
param = (s1.split("?")[1]).split("&")
for p in param:
    ar = p.split("=")
    # dict1[ar[0]]=ar[1]
    dict1.setdefault(ar[0], ar[1])
print("(7) :", dict1)

# （8）去除字符串的数字和空格
s1 = "what11 happy ?00 I don't00 like 2do it.3"
# s1=re.sub(r'[0-9]', "", s1)   #只去除数字

s1=re.sub(r'\d', "", s1)    #只去除数字
s1=s1.replace(" ","")
print("(8) :", s1)
